/*
   swap
*/

#include<iostream>
#include<thread>
#include<chrono>

void foo()
{
	std::this_thread::sleep_for(std::chrono::seconds(1));
}

void bar()
{
	std::this_thread::sleep_for(std::chrono::seconds(1));
}

int main()
{
	std::thread t1(foo);
	std::thread t2(bar);

	std::cout<<"Thread 1 id: "<<t1.get_id()<<std::endl;
	std::cout<<"Thread 2 id: "<<t2.get_id()<<std::endl;

	std::swap(t1, t2);

	std::cout<<"after std::swap(t1, t2):"<<std::endl;
	std::cout<<"Thread 1 id: "<<t1.get_id()<<std::endl;
	std::cout<<"Thread 2 id: "<<t2.get_id()<<std::endl;

	t1.swap(t2);

	std::cout<<"after t1.swap(t2):"<<std::endl;
	std::cout<<"Thread 1 id: "<<t1.get_id()<<std::endl;
	std::cout<<"Thread 2 id: "<<t2.get_id()<<std::endl;
	
	t1.join();
	t2.join();

}
